<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Repetier-Firmware: SdVolume Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="repetier-logo-trans128.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Repetier-Firmware
   &#160;<span id="projectnumber">0.91</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('class_sd_volume.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">SdVolume Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="SdVolume" -->
<p>Access FAT16 and FAT32 volumes on SD and SDHC cards.  
 <a href="class_sd_volume.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_sd_fat_8h_source.html">SdFat.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a8946a066e838455b790485f0f0b84a30">SdVolume</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unioncache__t.html">cache_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#aeb92f3b3c0e81e39f4dd123106f882a3">cacheClear</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ada2a0a79cd7ce879d8c6daf35ad86834">init</a> (<a class="el" href="class_sd2_card.html">Sd2Card</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#af178086a8274ddf1346bed1a108622b3">init</a> (<a class="el" href="class_sd2_card.html">Sd2Card</a> *dev, uint8_t part)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a8e6f1dd240dc430fdd1caf9742a56a7e">blocksPerCluster</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#aa3b929c0b3148bcef7622028d6978b8c">blocksPerFat</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#afcf5e92320a02c89758f5b07f8426d53">clusterCount</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#aabed24c62fcedb89c4218b02c3763ae6">clusterSizeShift</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ae95e3f4239d7ccb74d45a7e0cc4f499c">dataStartBlock</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a01935bdcf6a336f292102f7f23a2a38f">fatCount</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a1ff040834f446f329e00cc71284d92fc">fatStartBlock</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ab14a92a01d77303d73fd5acd54ffbc16">fatType</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ae00ae9399f79dd2173e9957cf7e274f8">freeClusterCount</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#abc35aae90237c3a555574e94d5763f18">rootDirEntryCount</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a9867c10a00c41a6c23471287be38ced3">rootDirStart</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_sd2_card.html">Sd2Card</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#adf6dac7ae17bdf477d077482dc4d76d7">sdCard</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a6359ecffed0d28a726e355ea86089899">dbgFat</a> (uint32_t n, uint32_t *v)</td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unioncache__t.html">cache_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a083aec3686ceb42e5d7ec33a677665da">cacheAddress</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a72b2590d65ddecf9b64c055e6ca2e875">cacheBlockNumber</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a5d40516ac800b55c55a377419c1d7d8b">allocContiguous</a> (uint32_t count, uint32_t *curCluster)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a40416a35beda5b5b7ebf000d274d80e5">blockOfCluster</a> (uint32_t position) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a1a7376b8098a3b1f5d6a125e4f985d58">clusterStartBlock</a> (uint32_t cluster) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#acab4b43b1042289f8b965c66116685c5">fatGet</a> (uint32_t cluster, uint32_t *value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a6e1860556a3da9a39e1d2cf5689fe7b4">fatPut</a> (uint32_t cluster, uint32_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a24e8af77381a24055df652f120cd1cef">fatPutEOC</a> (uint32_t cluster)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#afa90e695e69765a7d3c22a399187667f">freeChain</a> (uint32_t cluster)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#abe0fc33c22e66bc9ebc7635058b5d045">isEOC</a> (uint32_t cluster) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a2d3c126910c2c0c9d6ac468a459eec39">readBlock</a> (uint32_t block, uint8_t *dst)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a71ab95c288539ccc64a48184bab860ae">writeBlock</a> (uint32_t block, const uint8_t *dst)</td></tr>
<tr><td colspan="2"><h2><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unioncache__t.html">cache_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ad1819a01240230107e1c6b62e442bf71">cacheFetch</a> (uint32_t blockNumber, uint8_t options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unioncache__t.html">cache_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ad9c0d97c93fbbf878296ec10d54fee4d">cacheFetchData</a> (uint32_t blockNumber, uint8_t options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unioncache__t.html">cache_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#adedfcc45c70319f1c589b6788e740828">cacheFetchFat</a> (uint32_t blockNumber, uint8_t options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#acb94e54dae4fea8860fe449105e3d0f6">cacheInvalidate</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a8897e95709ce46e8fa93674f509f9052">cacheSync</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a17ba199a18ee148251f273939fe9f0e7">cacheWriteData</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#acf0fb87b8ded74b67b8a6abae2ef2ca0">cacheWriteFat</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a8971134e76e36a58bc13dd08960f7355">allocSearchStart_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a034c6d16845c12e97738ea5841cd69a9">blocksPerCluster_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#af1780962a496439ff8af6946df50c6fd">blocksPerFat_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a903dab7955c7199a1b8dcbab453627de">clusterCount_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a1756eeefb2456c7a5fe12139ca5e16ff">clusterSizeShift_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a82c9b8371cb024e277704da07f3b21cf">dataStartBlock_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ade92bd3ab96c8a11ae6e20139ed7bb8b">fatCount_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a1eb3811c3747ab9c7cdecc5e19603522">fatStartBlock_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a6f0521bb1c1bad2b0ff5109d6a6320e3">fatType_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a557d01e917256bf2664edbe547b2c6f8">rootDirEntryCount_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a6c73bc9622358cc717df0290dcfc226c">rootDirStart_</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> = 1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#abcc63369a240dff82c0141762884142c">CACHE_STATUS_FAT_BLOCK</a> = 2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a598a8d80cba5bf39d82720c02226c5ea">CACHE_STATUS_MASK</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> | <a class="el" href="class_sd_volume.html#abcc63369a240dff82c0141762884142c">CACHE_STATUS_FAT_BLOCK</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ad7dcdbc6dfef683733c9b4e473cc9a39">CACHE_OPTION_NO_READ</a> = 4</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a5330b5c50bf685a94db992c5cbbbc1d9">CACHE_FOR_READ</a> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ae65a3251694e51e0f38f1b813f234998">CACHE_FOR_WRITE</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a84445120a60d7ee393d3500e8e410276">CACHE_RESERVE_FOR_WRITE</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> | <a class="el" href="class_sd_volume.html#ad7dcdbc6dfef683733c9b4e473cc9a39">CACHE_OPTION_NO_READ</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unioncache__t.html">cache_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a2cc1a626151e1ae372cab5540c740a9c">cacheBuffer_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#aff7820d33e7459503afe447ccd6fb867">cacheBlockNumber_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a879f5e0e65321f8e852d112f2996c12b">cacheFatOffset_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#ac9538c87b47325f47ca882ee0a2913be">cacheStatus_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_sd2_card.html">Sd2Card</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a4af785acfbe605270a1270eabd99eec0">sdCard_</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sd_volume.html#a05e466c179d34fec11c4406677fe0533">SdBaseFile</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Access FAT16 and FAT32 volumes on SD and SDHC cards. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a8946a066e838455b790485f0f0b84a30"></a><!-- doxytag: member="SdVolume::SdVolume" ref="a8946a066e838455b790485f0f0b84a30" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_sd_volume.html">SdVolume</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create an instance of <a class="el" href="class_sd_volume.html" title="Access FAT16 and FAT32 volumes on SD and SDHC cards.">SdVolume</a> </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a5d40516ac800b55c55a377419c1d7d8b"></a><!-- doxytag: member="SdVolume::allocContiguous" ref="a5d40516ac800b55c55a377419c1d7d8b" args="(uint32_t count, uint32_t *curCluster)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a5d40516ac800b55c55a377419c1d7d8b">allocContiguous</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>curCluster</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a40416a35beda5b5b7ebf000d274d80e5"></a><!-- doxytag: member="SdVolume::blockOfCluster" ref="a40416a35beda5b5b7ebf000d274d80e5" args="(uint32_t position) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a40416a35beda5b5b7ebf000d274d80e5">blockOfCluster</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>position</em></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8e6f1dd240dc430fdd1caf9742a56a7e"></a><!-- doxytag: member="SdVolume::blocksPerCluster" ref="a8e6f1dd240dc430fdd1caf9742a56a7e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a8e6f1dd240dc430fdd1caf9742a56a7e">blocksPerCluster</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The volume's cluster size in blocks. </dd></dl>

</div>
</div>
<a class="anchor" id="aa3b929c0b3148bcef7622028d6978b8c"></a><!-- doxytag: member="SdVolume::blocksPerFat" ref="aa3b929c0b3148bcef7622028d6978b8c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#aa3b929c0b3148bcef7622028d6978b8c">blocksPerFat</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of blocks in one FAT. </dd></dl>

</div>
</div>
<a class="anchor" id="a083aec3686ceb42e5d7ec33a677665da"></a><!-- doxytag: member="SdVolume::cacheAddress" ref="a083aec3686ceb42e5d7ec33a677665da" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unioncache__t.html">cache_t</a>* <a class="el" href="class_sd_volume.html#a083aec3686ceb42e5d7ec33a677665da">cacheAddress</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a72b2590d65ddecf9b64c055e6ca2e875"></a><!-- doxytag: member="SdVolume::cacheBlockNumber" ref="a72b2590d65ddecf9b64c055e6ca2e875" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a72b2590d65ddecf9b64c055e6ca2e875">cacheBlockNumber</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aeb92f3b3c0e81e39f4dd123106f882a3"></a><!-- doxytag: member="SdVolume::cacheClear" ref="aeb92f3b3c0e81e39f4dd123106f882a3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unioncache__t.html">cache_t</a>* <a class="el" href="class_sd_volume.html#aeb92f3b3c0e81e39f4dd123106f882a3">cacheClear</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Clear the cache and returns a pointer to the cache. Used by the WaveRP recorder to do raw write to the SD card. Not for normal apps. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the cache buffer or zero if an error occurs. </dd></dl>

</div>
</div>
<a class="anchor" id="ad1819a01240230107e1c6b62e442bf71"></a><!-- doxytag: member="SdVolume::cacheFetch" ref="ad1819a01240230107e1c6b62e442bf71" args="(uint32_t blockNumber, uint8_t options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="unioncache__t.html">cache_t</a>* <a class="el" href="class_sd_volume.html#ad1819a01240230107e1c6b62e442bf71">cacheFetch</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>blockNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad9c0d97c93fbbf878296ec10d54fee4d"></a><!-- doxytag: member="SdVolume::cacheFetchData" ref="ad9c0d97c93fbbf878296ec10d54fee4d" args="(uint32_t blockNumber, uint8_t options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="unioncache__t.html">cache_t</a>* <a class="el" href="class_sd_volume.html#ad9c0d97c93fbbf878296ec10d54fee4d">cacheFetchData</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>blockNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="adedfcc45c70319f1c589b6788e740828"></a><!-- doxytag: member="SdVolume::cacheFetchFat" ref="adedfcc45c70319f1c589b6788e740828" args="(uint32_t blockNumber, uint8_t options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="unioncache__t.html">cache_t</a>* <a class="el" href="class_sd_volume.html#adedfcc45c70319f1c589b6788e740828">cacheFetchFat</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>blockNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acb94e54dae4fea8860fe449105e3d0f6"></a><!-- doxytag: member="SdVolume::cacheInvalidate" ref="acb94e54dae4fea8860fe449105e3d0f6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_sd_volume.html#acb94e54dae4fea8860fe449105e3d0f6">cacheInvalidate</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8897e95709ce46e8fa93674f509f9052"></a><!-- doxytag: member="SdVolume::cacheSync" ref="a8897e95709ce46e8fa93674f509f9052" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="class_sd_volume.html#a8897e95709ce46e8fa93674f509f9052">cacheSync</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a17ba199a18ee148251f273939fe9f0e7"></a><!-- doxytag: member="SdVolume::cacheWriteData" ref="a17ba199a18ee148251f273939fe9f0e7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="class_sd_volume.html#a17ba199a18ee148251f273939fe9f0e7">cacheWriteData</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acf0fb87b8ded74b67b8a6abae2ef2ca0"></a><!-- doxytag: member="SdVolume::cacheWriteFat" ref="acf0fb87b8ded74b67b8a6abae2ef2ca0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="class_sd_volume.html#acf0fb87b8ded74b67b8a6abae2ef2ca0">cacheWriteFat</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afcf5e92320a02c89758f5b07f8426d53"></a><!-- doxytag: member="SdVolume::clusterCount" ref="afcf5e92320a02c89758f5b07f8426d53" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#afcf5e92320a02c89758f5b07f8426d53">clusterCount</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The total number of clusters in the volume. </dd></dl>

</div>
</div>
<a class="anchor" id="aabed24c62fcedb89c4218b02c3763ae6"></a><!-- doxytag: member="SdVolume::clusterSizeShift" ref="aabed24c62fcedb89c4218b02c3763ae6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#aabed24c62fcedb89c4218b02c3763ae6">clusterSizeShift</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The shift count required to multiply by blocksPerCluster. </dd></dl>

</div>
</div>
<a class="anchor" id="a1a7376b8098a3b1f5d6a125e4f985d58"></a><!-- doxytag: member="SdVolume::clusterStartBlock" ref="a1a7376b8098a3b1f5d6a125e4f985d58" args="(uint32_t cluster) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a1a7376b8098a3b1f5d6a125e4f985d58">clusterStartBlock</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em></td><td>)</td>
          <td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae95e3f4239d7ccb74d45a7e0cc4f499c"></a><!-- doxytag: member="SdVolume::dataStartBlock" ref="ae95e3f4239d7ccb74d45a7e0cc4f499c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#ae95e3f4239d7ccb74d45a7e0cc4f499c">dataStartBlock</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The logical block number for the start of file data. </dd></dl>

</div>
</div>
<a class="anchor" id="a6359ecffed0d28a726e355ea86089899"></a><!-- doxytag: member="SdVolume::dbgFat" ref="a6359ecffed0d28a726e355ea86089899" args="(uint32_t n, uint32_t *v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a6359ecffed0d28a726e355ea86089899">dbgFat</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Debug access to FAT table</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>cluster number. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">v</td><td>value of entry </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success or false for failure </dd></dl>

</div>
</div>
<a class="anchor" id="a01935bdcf6a336f292102f7f23a2a38f"></a><!-- doxytag: member="SdVolume::fatCount" ref="a01935bdcf6a336f292102f7f23a2a38f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a01935bdcf6a336f292102f7f23a2a38f">fatCount</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of FAT structures on the volume. </dd></dl>

</div>
</div>
<a class="anchor" id="acab4b43b1042289f8b965c66116685c5"></a><!-- doxytag: member="SdVolume::fatGet" ref="acab4b43b1042289f8b965c66116685c5" args="(uint32_t cluster, uint32_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#acab4b43b1042289f8b965c66116685c5">fatGet</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6e1860556a3da9a39e1d2cf5689fe7b4"></a><!-- doxytag: member="SdVolume::fatPut" ref="a6e1860556a3da9a39e1d2cf5689fe7b4" args="(uint32_t cluster, uint32_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a6e1860556a3da9a39e1d2cf5689fe7b4">fatPut</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a24e8af77381a24055df652f120cd1cef"></a><!-- doxytag: member="SdVolume::fatPutEOC" ref="a24e8af77381a24055df652f120cd1cef" args="(uint32_t cluster)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a24e8af77381a24055df652f120cd1cef">fatPutEOC</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1ff040834f446f329e00cc71284d92fc"></a><!-- doxytag: member="SdVolume::fatStartBlock" ref="a1ff040834f446f329e00cc71284d92fc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a1ff040834f446f329e00cc71284d92fc">fatStartBlock</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The logical block number for the start of the first FAT. </dd></dl>

</div>
</div>
<a class="anchor" id="ab14a92a01d77303d73fd5acd54ffbc16"></a><!-- doxytag: member="SdVolume::fatType" ref="ab14a92a01d77303d73fd5acd54ffbc16" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#ab14a92a01d77303d73fd5acd54ffbc16">fatType</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The FAT type of the volume. Values are 12, 16 or 32. </dd></dl>

</div>
</div>
<a class="anchor" id="afa90e695e69765a7d3c22a399187667f"></a><!-- doxytag: member="SdVolume::freeChain" ref="afa90e695e69765a7d3c22a399187667f" args="(uint32_t cluster)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#afa90e695e69765a7d3c22a399187667f">freeChain</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae00ae9399f79dd2173e9957cf7e274f8"></a><!-- doxytag: member="SdVolume::freeClusterCount" ref="ae00ae9399f79dd2173e9957cf7e274f8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="class_sd_volume.html#ae00ae9399f79dd2173e9957cf7e274f8">freeClusterCount</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ada2a0a79cd7ce879d8c6daf35ad86834"></a><!-- doxytag: member="SdVolume::init" ref="ada2a0a79cd7ce879d8c6daf35ad86834" args="(Sd2Card *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#ada2a0a79cd7ce879d8c6daf35ad86834">init</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_sd2_card.html">Sd2Card</a> *&#160;</td>
          <td class="paramname"><em>dev</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initialize a FAT volume. Try partition one first then try super floppy format.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dev</td><td>The <a class="el" href="class_sd2_card.html" title="Raw access to SD and SDHC flash memory cards.">Sd2Card</a> where the volume is located.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value one, true, is returned for success and the value zero, false, is returned for failure. Reasons for failure include not finding a valid partition, not finding a valid FAT file system or an I/O error. </dd></dl>

</div>
</div>
<a class="anchor" id="af178086a8274ddf1346bed1a108622b3"></a><!-- doxytag: member="SdVolume::init" ref="af178086a8274ddf1346bed1a108622b3" args="(Sd2Card *dev, uint8_t part)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#ada2a0a79cd7ce879d8c6daf35ad86834">init</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_sd2_card.html">Sd2Card</a> *&#160;</td>
          <td class="paramname"><em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>part</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abe0fc33c22e66bc9ebc7635058b5d045"></a><!-- doxytag: member="SdVolume::isEOC" ref="abe0fc33c22e66bc9ebc7635058b5d045" args="(uint32_t cluster) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#abe0fc33c22e66bc9ebc7635058b5d045">isEOC</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cluster</em></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2d3c126910c2c0c9d6ac468a459eec39"></a><!-- doxytag: member="SdVolume::readBlock" ref="a2d3c126910c2c0c9d6ac468a459eec39" args="(uint32_t block, uint8_t *dst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a2d3c126910c2c0c9d6ac468a459eec39">readBlock</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>block</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abc35aae90237c3a555574e94d5763f18"></a><!-- doxytag: member="SdVolume::rootDirEntryCount" ref="abc35aae90237c3a555574e94d5763f18" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#abc35aae90237c3a555574e94d5763f18">rootDirEntryCount</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of entries in the root directory for FAT16 volumes. </dd></dl>

</div>
</div>
<a class="anchor" id="a9867c10a00c41a6c23471287be38ced3"></a><!-- doxytag: member="SdVolume::rootDirStart" ref="a9867c10a00c41a6c23471287be38ced3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a9867c10a00c41a6c23471287be38ced3">rootDirStart</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes. </dd></dl>

</div>
</div>
<a class="anchor" id="adf6dac7ae17bdf477d077482dc4d76d7"></a><!-- doxytag: member="SdVolume::sdCard" ref="adf6dac7ae17bdf477d077482dc4d76d7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_sd2_card.html">Sd2Card</a>* <a class="el" href="class_sd_volume.html#adf6dac7ae17bdf477d077482dc4d76d7">sdCard</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p><a class="el" href="class_sd2_card.html" title="Raw access to SD and SDHC flash memory cards.">Sd2Card</a> object for this volume </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to <a class="el" href="class_sd2_card.html" title="Raw access to SD and SDHC flash memory cards.">Sd2Card</a> object. </dd></dl>

</div>
</div>
<a class="anchor" id="a71ab95c288539ccc64a48184bab860ae"></a><!-- doxytag: member="SdVolume::writeBlock" ref="a71ab95c288539ccc64a48184bab860ae" args="(uint32_t block, const uint8_t *dst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_sd_volume.html#a71ab95c288539ccc64a48184bab860ae">writeBlock</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>block</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a05e466c179d34fec11c4406677fe0533"></a><!-- doxytag: member="SdVolume::SdBaseFile" ref="a05e466c179d34fec11c4406677fe0533" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="class_sd_base_file.html">SdBaseFile</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a8971134e76e36a58bc13dd08960f7355"></a><!-- doxytag: member="SdVolume::allocSearchStart_" ref="a8971134e76e36a58bc13dd08960f7355" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a8971134e76e36a58bc13dd08960f7355">allocSearchStart_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a034c6d16845c12e97738ea5841cd69a9"></a><!-- doxytag: member="SdVolume::blocksPerCluster_" ref="a034c6d16845c12e97738ea5841cd69a9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a034c6d16845c12e97738ea5841cd69a9">blocksPerCluster_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af1780962a496439ff8af6946df50c6fd"></a><!-- doxytag: member="SdVolume::blocksPerFat_" ref="af1780962a496439ff8af6946df50c6fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#af1780962a496439ff8af6946df50c6fd">blocksPerFat_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5330b5c50bf685a94db992c5cbbbc1d9"></a><!-- doxytag: member="SdVolume::CACHE_FOR_READ" ref="a5330b5c50bf685a94db992c5cbbbc1d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const <a class="el" href="class_sd_volume.html#a5330b5c50bf685a94db992c5cbbbc1d9">CACHE_FOR_READ</a> = 0<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae65a3251694e51e0f38f1b813f234998"></a><!-- doxytag: member="SdVolume::CACHE_FOR_WRITE" ref="ae65a3251694e51e0f38f1b813f234998" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const <a class="el" href="class_sd_volume.html#ae65a3251694e51e0f38f1b813f234998">CACHE_FOR_WRITE</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad7dcdbc6dfef683733c9b4e473cc9a39"></a><!-- doxytag: member="SdVolume::CACHE_OPTION_NO_READ" ref="ad7dcdbc6dfef683733c9b4e473cc9a39" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t <a class="el" href="class_sd_volume.html#ad7dcdbc6dfef683733c9b4e473cc9a39">CACHE_OPTION_NO_READ</a> = 4<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a84445120a60d7ee393d3500e8e410276"></a><!-- doxytag: member="SdVolume::CACHE_RESERVE_FOR_WRITE" ref="a84445120a60d7ee393d3500e8e410276" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const <a class="el" href="class_sd_volume.html#a84445120a60d7ee393d3500e8e410276">CACHE_RESERVE_FOR_WRITE</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> | <a class="el" href="class_sd_volume.html#ad7dcdbc6dfef683733c9b4e473cc9a39">CACHE_OPTION_NO_READ</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3e779174888dcf714468ee58d07307b5"></a><!-- doxytag: member="SdVolume::CACHE_STATUS_DIRTY" ref="a3e779174888dcf714468ee58d07307b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> = 1<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abcc63369a240dff82c0141762884142c"></a><!-- doxytag: member="SdVolume::CACHE_STATUS_FAT_BLOCK" ref="abcc63369a240dff82c0141762884142c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t <a class="el" href="class_sd_volume.html#abcc63369a240dff82c0141762884142c">CACHE_STATUS_FAT_BLOCK</a> = 2<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a598a8d80cba5bf39d82720c02226c5ea"></a><!-- doxytag: member="SdVolume::CACHE_STATUS_MASK" ref="a598a8d80cba5bf39d82720c02226c5ea" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t <a class="el" href="class_sd_volume.html#a598a8d80cba5bf39d82720c02226c5ea">CACHE_STATUS_MASK</a> = <a class="el" href="class_sd_volume.html#a3e779174888dcf714468ee58d07307b5">CACHE_STATUS_DIRTY</a> | <a class="el" href="class_sd_volume.html#abcc63369a240dff82c0141762884142c">CACHE_STATUS_FAT_BLOCK</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aff7820d33e7459503afe447ccd6fb867"></a><!-- doxytag: member="SdVolume::cacheBlockNumber_" ref="aff7820d33e7459503afe447ccd6fb867" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#aff7820d33e7459503afe447ccd6fb867">cacheBlockNumber_</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2cc1a626151e1ae372cab5540c740a9c"></a><!-- doxytag: member="SdVolume::cacheBuffer_" ref="a2cc1a626151e1ae372cab5540c740a9c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unioncache__t.html">cache_t</a> <a class="el" href="class_sd_volume.html#a2cc1a626151e1ae372cab5540c740a9c">cacheBuffer_</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a879f5e0e65321f8e852d112f2996c12b"></a><!-- doxytag: member="SdVolume::cacheFatOffset_" ref="a879f5e0e65321f8e852d112f2996c12b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a879f5e0e65321f8e852d112f2996c12b">cacheFatOffset_</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac9538c87b47325f47ca882ee0a2913be"></a><!-- doxytag: member="SdVolume::cacheStatus_" ref="ac9538c87b47325f47ca882ee0a2913be" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#ac9538c87b47325f47ca882ee0a2913be">cacheStatus_</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a903dab7955c7199a1b8dcbab453627de"></a><!-- doxytag: member="SdVolume::clusterCount_" ref="a903dab7955c7199a1b8dcbab453627de" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a903dab7955c7199a1b8dcbab453627de">clusterCount_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1756eeefb2456c7a5fe12139ca5e16ff"></a><!-- doxytag: member="SdVolume::clusterSizeShift_" ref="a1756eeefb2456c7a5fe12139ca5e16ff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a1756eeefb2456c7a5fe12139ca5e16ff">clusterSizeShift_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a82c9b8371cb024e277704da07f3b21cf"></a><!-- doxytag: member="SdVolume::dataStartBlock_" ref="a82c9b8371cb024e277704da07f3b21cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a82c9b8371cb024e277704da07f3b21cf">dataStartBlock_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ade92bd3ab96c8a11ae6e20139ed7bb8b"></a><!-- doxytag: member="SdVolume::fatCount_" ref="ade92bd3ab96c8a11ae6e20139ed7bb8b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#ade92bd3ab96c8a11ae6e20139ed7bb8b">fatCount_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1eb3811c3747ab9c7cdecc5e19603522"></a><!-- doxytag: member="SdVolume::fatStartBlock_" ref="a1eb3811c3747ab9c7cdecc5e19603522" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a1eb3811c3747ab9c7cdecc5e19603522">fatStartBlock_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6f0521bb1c1bad2b0ff5109d6a6320e3"></a><!-- doxytag: member="SdVolume::fatType_" ref="a6f0521bb1c1bad2b0ff5109d6a6320e3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="class_sd_volume.html#a6f0521bb1c1bad2b0ff5109d6a6320e3">fatType_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a557d01e917256bf2664edbe547b2c6f8"></a><!-- doxytag: member="SdVolume::rootDirEntryCount_" ref="a557d01e917256bf2664edbe547b2c6f8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t <a class="el" href="class_sd_volume.html#a557d01e917256bf2664edbe547b2c6f8">rootDirEntryCount_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6c73bc9622358cc717df0290dcfc226c"></a><!-- doxytag: member="SdVolume::rootDirStart_" ref="a6c73bc9622358cc717df0290dcfc226c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="class_sd_volume.html#a6c73bc9622358cc717df0290dcfc226c">rootDirStart_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4af785acfbe605270a1270eabd99eec0"></a><!-- doxytag: member="SdVolume::sdCard_" ref="a4af785acfbe605270a1270eabd99eec0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_sd2_card.html">Sd2Card</a>* <a class="el" href="class_sd_volume.html#a4af785acfbe605270a1270eabd99eec0">sdCard_</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/ArduinoAVR/Repetier/<a class="el" href="_sd_fat_8h_source.html">SdFat.h</a></li>
</ul>
</div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="class_sd_volume.html">SdVolume</a>      </li>

    <li class="footer">Generated on Mon Dec 30 2013 18:53:03 for Repetier-Firmware by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
